﻿using Google.Analytics.Model;
using Google.Analytics.Model.Feeds;
using Google.Analytics.Model.Queries;

namespace Google.Analytics.RemoteAccess.API
{
    public interface IAnalyticsAPI
    {
        /// <summary>
        /// Forces authentication and returnes the string token
        /// </summary>
        /// <returns></returns>
        AuthState ForceAuthentication();

        /// <summary>
        /// Gets all the accounts from the Google Analytics account
        /// </summary>
        /// <param name="accountQuery"></param>
        /// <returns></returns>
        AccountFeed GetAccounts(AccountQuery accountQuery);

        /// <summary>
        /// Gets the data from the feed
        /// </summary>
        /// <param name="dataQuery"></param>
        /// <returns></returns>
        DataFeed GetData(DataQuery dataQuery);
    }
}
